﻿//DP34 【模板】前缀和
//描述
//给定一个长度为n的数组
//
//接下来有q次查询, 每次查询有两个参数l, r.
//对于每个询问, 请输出
//​
//
//输入描述：
//第一行包含两个整数n和q.
//第二行包含n个整数, 表示
//​
//接下来q行, 每行包含两个整数   l和r.
//
//输出描述：
//输出q行, 每行代表一次查询的结果.
#include <iostream>
#include <vector>
using namespace std;

int main(){
	//1、读入数据
	int n, q;
	cin >> n >> q;
	vector<int> arr(n + 1);
	for (int i = 1; i <= n; i++) cin >> arr[i];
	// 2、预处理出来一个前缀和数组
	vector<long long> dp(n + 1);  // 为了防止溢出
	for (int i = 1; i <= n; i++) dp[i] = dp[i - 1] + arr[i];
	// 3、使用前缀和数组
	int l = 0, r = 0;
	while (q--)
	{
		cin >> l >> r;
		cout << dp[r] - dp[l - 1] << endl;
	}
}